问题背景
随着网络技术发展,传统的以TCP/IP所构成的“细腰”的网络体系结构已经成为目前网络产业以及网络创新型技术发展的瓶颈。网络虚拟化技术的基本思想与计算机体系结构中的虚拟化技术类似,见图1。目前以网络虚拟化为手段解决TCP/IP网络体系结构僵化问题已成为未来网络领域发展的主流方向之一。软件定义网络(Software Defined Networking, SDN)为网络虚拟化的实现提供了有效支撑。该技术实现了控制层面与数据层面的解耦分离,将对网络的控制及管理抽象到逻辑或者虚拟的实体提供灵活的、开放的控制接口,使网络交换设备负责单纯的转发,以有助于网络虚拟化的实现。在SDN网络虚拟化平台中,所产生的切片网络实例被称之为虚拟SDN网络(virtual SDN Network, vSDN) [1],它继承了虚拟网络和软件定义网络各自的优点,将灵活的网络管控与面向服务的自定义网络相结合。因此,利用基于SDN的网络虚拟化技术受到了广泛的关注。
图1 网络虚拟化的基本原理
随着人们对业务质量的要求越来越高,对服务质量保证(Quality of Service, QoS)的要求也越来越高。而网络作为云计算平台运行的一个重要的硬件载体,直接关系到云计算平台所提供的服务质量。如何抽象云计算平台的网络资源、构建极端化用户的需求是一个重要问题。由于新型的网络设备的种类和功能日益繁多,抽象这些复杂的网络设备并利用这些网络设备构建具有QoS保证的网络服务也是广泛存在的问题[2]。虽然,学术界和产业界目前的网络虚拟化技术针对网络带宽、延迟以及计算资源开展了大量的科学研究[3],但是,这些研究成果只能为云平台提供常规的QoS保证,网络虚拟化技术面临许多“深水区”问题尚未解决。一方面,是极端化的用户需求所带来的虚拟化问题,例如极端吞吐需求、极端低延迟需求等;另一方面,超大规模网络环境给网络虚拟化技术带来的问题,这里所指既可以是节点数量规模庞大的网络,也可以是虚拟化网络业务量巨大的网络和分布范围广泛的网络环境,这些问题可以是在规模庞大复杂的网络环境中,网络虚拟化平台和相关技术所面临的用户请求的高并发性问题、可扩展性问题,也可以是不同平台和技术之间的兼容性问题以及超大规模网络的管理和性能监控问题。从这些“深水区”的网络虚拟化角度,研究面向超大网络规模的极端化网络需求,对于提供服务质量保证的虚拟网络服务具有重要的意义。
SDN网络虚拟化平台
工作原理
传统SDN网络的工作原理如图2(a)所示,网络应用程序A和B通过北向接口与控制器进行通信,进而通过南向接口与物理设备交互,实现相应的网络策略。逻辑上集中的SDN控制器拥有全局的网络视图,向上层应用提供丰富的API以实现“可编程”。因此,通过在控制层面和转发层面之间加入SDN虚拟化平台,可实现SDN网络虚拟化。
图2 SDN虚拟化平台的工作原理
SDN网络虚拟化平台的工作原理分别如图2(b)和2(c)所示。在图2(b)中,SDN网络虚拟化控制平台直接与底层物理网络设备交互,以透明的方式转义以及转发控制数据;在图2(c)中SDN网络虚拟化控制平台通过屏蔽链路发现协议的方法造成每个vSDN控制器直接控制着相应的虚拟网络拓扑的错觉[1]。不管是在图2(b)还是在2(c)中,虚拟网络都是依托一个物理网络生成的,但是任意不同的虚拟网络之间相互隔离、互不影响。控制层面的隔离、数据层面隔离以及地址空间隔离是网络虚拟化中最重要的技术。
平台对比
目前学术界和工业中的主流SDN网络虚拟化平台的对比见表1。
表1 通用SDN虚拟化平台设计对比
名称 | 虚拟化方式 | 网络拓扑虚拟化 | 地址空间隔离 | 资源隔离与抽象 |
VeRTIGO [4] | 基于虚拟化平台 | 可以隐藏虚拟链路的中间节点 | 基于VLAN、MPLS的地址隔离 | 带宽隔离 |
Enhanced FlowVisor [5] | 基于虚拟化平台 | 不支持 | 不重叠的地址空间 | 带宽隔离 |
OpenVirteX [6] | 基于虚拟化平台 | 支持 | 支持可重叠的地址空间隔离 | 无 |
FlowN [7] | 基于容器技术的应用程序虚拟化 | 支持 | 基于VALN的地址空间隔离 | 无 |
NVP [8] | 基于虚拟化平台 | —— | —— | 交换机计算资源和存储资源 |
依赖于网络虚拟化平台所采用的虚拟化方式和映射算法,不同的网络虚拟化平台所能提供的虚拟化粒度和网络性能有所不同。VeRTIGO在FlowVisor和AdVisor对虚拟网络抽象的基础上更进一步,允许vSDN 控制器选择虚拟网络抽象的级别。VeRTIGO 为具有最详细的抽象级别的vSDN提供完全的资源抽象和完全的虚拟网络控制能力,而具有“最不详细”抽象级别的vSDN所有的网络操作由VeRTIGO的虚拟机监控器(hypervisor)代理,vSDN租户本身只专注于虚拟网络上运行的服务。
顾名思义,Enhanced FlowVisor是对FlowVisor虚拟化平台的增强。其主要贡献在于带宽保障和接入控制方面对FlowVisor进行了拓展。Enhanced FlowVisor使用VLAN PCP实现基于流的带宽保障,在一个新的网络请求被接受之前,通过接入控制模块检查是否还有足够的带宽,如果剩余的带宽不能满足这个网络请求,那么这个网络请求就会被拒绝。
FlowN不同于FlowVisor虚拟化方式,它采用了分布式的hypervisor和基于容器的应用程序虚拟化。同时基于VLAN的地址空间隔离方式,使FlowN拥有完全的网络拓扑虚拟化能力。通过共享控制器平台,不同的租户在隔离的容器中运行自己的北向应用。为了优化虚拟设备和物理设备映射关系的管理,FlowN采用了主从数据库技术,通过数据一致性算法保证了不同物理服务器上控制信息的一致性。
网络虚拟化平台(Network Virtualization Platform, NVP)专注于数据中心网络的虚拟化,包括单个数据中心网络和多个互联的数据中心网络的虚拟化。NVP的虚拟化是通过不同物理服务器上构建软件交换机作为hypervisor的方式实现虚拟化的。目的是在云平台中实现可以任意自定义的网络拓扑,但对其他的服务质量没有保证。
由于网络虚拟化平台所采用的隔离技术和虚拟化技术不同,不同的网络虚拟化平台能够支撑的虚拟网络映射方式也不同,对于资源的管理粒度也存在差异。但是,无论采用哪种虚拟化手段,都会带来一定的性能损耗。
工作介绍
上文中提到的SDN网络虚拟化平台已经基本实现了需求功能,例如OpenVirteX实现了可重叠的网络地址空间隔离、VeRTIGO和Enhanced FlowVisor实现了虚拟网络的带宽隔离和保证、NVP实现了数据中心网络中虚拟机网络的任意定制化等等。然而,在极端需求条件下,vSDN网络映射的复杂度相对于传统的虚拟网络映射会大大增加,除了要考虑到各种隔离属性之外,还需要满足不同的租户对延时和网络功能服务链的需求,并且用户的体验和网络的质量对需求是否得到满足也变得更加敏感。由于在虚拟SDN网络中需要控制器实例对虚拟网络进行管控,而在云计算平台或者数据中心网络中,SDN控制器往往采用带内接入的方式接入到互联网中。很多延迟敏感的应用往往要求保证数据平面和控制平面的延时要满足一定条件,从而达到理想的控制状态。由于虚拟网络的延迟等性能指标完全依赖于底层的网络环境,通过设计合理的虚拟网络映射算法可以达到控制虚拟网络和底层网络映射关系的效果,进而可以达到控制虚拟网络的网元之间延迟的目的。
因此,我们提出了低延时的SDN虚拟网络控制器放置算法,解决极端需求环境下虚拟网络控制器与虚拟网元之间的控制延迟问题。该算法基于集中的虚拟化平台,目的是把每个租户的控制器实例映射到合适的位置,以满足不同租户的延时需求。该在线算法的核心思想是在每一个虚拟网络创建请求到来时,以集中的虚拟化平台hypervisor为中心,从候选的控制器放置位置集合中通过逐层搜索以确定满足该虚拟网络延时要求的控制器实例的放置位置。如果候选的放置位置满足延时的要求但该位置处负担的资源已超出其最大物理承载能力,则该虚拟网络请求就会被拒绝。否则,该虚拟网络创建请求将被接受,并返回虚拟网络控制器具体的放置位置。SDN网络虚拟化平台和vSDN控制器的接入方式以及算法的实验结果如图3所示。
图3 (a)SDN网络虚拟化平台和vSDN控制器的接入方式 (b)实验结果
另一方面,虚拟网络的性能依然受到底层物理网络的限制。考虑到极端网络环境下,vSDN租户对延时敏感度提出的极端化要求,虚拟网络中的虚拟交换机与控制器进行通信时还必须要经过hypervisor处理。因此,在映射虚拟网络时,需要综合考虑hypervisor和各个租户控制器和交换机的放置,同时为了保证整个网络的高利用率,我们提出了结合多个hypervisor实例的低延时的虚拟网络映射算法。我们还考虑了虚拟网络交换机节点、虚拟链路、控制器、hypervisor与底层网络物理资源的映射关系以及底层物理网络资源的负载情况,构建了使归一化的负载均衡系数(负载的均方差)达到最小的优化方案。在达到底层物理资源负载均衡的同时,我们结合之前所提出的基于延迟敏感的虚拟网络映射算法,保证了每个虚拟网络的控制链路延迟满足用户提出的需求。现已做到在多个hypervisor实例的网络中,在保证虚拟控制链路的延迟条件下,虚拟网络映射底层网络资源的负载均衡,达到提供延迟敏感的虚拟网络服务质量保证的同时提高资源利用率的目的。
未来方向
图4介绍了SDN网络虚拟化的发展机遇和目前所面临的技术问题。
图4 SDN网络虚拟化在各个层面所面临的技术挑战
SDN网络中虚拟网络映射问题
虚拟网络嵌入(Virtual Network Embedding, VNE) [9],即在网络虚拟化环境中如何将虚拟网络嵌入底层基础网络设备,是一个备受关注的问题。高效的嵌入方法不仅可以提高虚拟网络的性能,而且能够提高物理设备的资源利用效率。尽管传统网络下的VNE方法在某种程度上适用于vSDN网络的嵌入问题,但仍存在一些差异。集中化的控制层面为实现SDN网络虚拟化提供了便利的手段,然而嵌入到底层物理网络设备上的每一个vSDN都需要一个控制器对其进行管理。在嵌入vSDN时,往往需要管理员手动指定vSDN控制器的物理位置。在实际应用中,控制器往往采用带内接入的方式接入网络。为了保证虚拟网络正常运行,在嵌入vSDN网络时就必须要确保所有的控制器-交换机通道不会出现拥塞和高延迟的情况。
虚拟网络自动化部署问题
虽然目前关于SDN网络环境下的网络虚拟化问题已经有了大量的研究成果,但是这些研究重点只在如何轻量级、可编程地实现网络切片技术上,关于如何自动化地生成、部署vSDN网络的研究却没有得到广泛关注。一般情况下,在vSDN网络生成之前,需要组织好生成虚拟网络所需的所有资源。
在云环境中,如何实现网络资源的资源池化管理,以及如何合理调配这些网络资源使其自动化地生成符合用户需求的vSDN网络,依然有待深入研究。
SDN网络虚拟化的容错性问题
SDN网络与传统网络的一个很大不同在于:SDN借助控制器实现网络中数据包的路由转发,控制器失效将会导致网络的崩溃和瘫痪。放到虚拟化环境中也是如此。hypervisor的故障会产生严重后果,所有依附于hypervisor的vSDN控制器将失去对其下虚拟交换机的控制;若vSDN控制器失去作用,就同真实网络一样,数据包也将会无法转发。因此,需要建立起一套有效机制应对SDN网络虚拟化中出现的hypervisor与vSDN控制的故障失效。同时,也需要在物理资源池留下一定的冗余,当映射完成时,若物理资源发生了不可预知的错误,为保障用户的业务不受影响,必须为用户透明地更迭已失效部件。
SDN网络虚拟化可扩展性问题
在大多数真实的网络虚拟化的部署中,单个hypervisor往往无法面对大规模的网络环境,这里的大规模网络环境既可以是节点数量规模庞大的网络,也可以是虚拟化网络业务量巨大的网络和分布范围广泛的网络环境。因此,hypervisor通常需要采用分布式的架构以增强其扩展性。SDN网络虚拟化借助于hypervisor的配置管理,vSDN控制器的放置以及通信都需要hypervisor的统一部署及协调。若为每个虚拟SDN网络分配一个控制器,这将会大大增加hypervisor的负载压力。同时,在分布式hypervisor的架构中,如何在运行时动态分配用户的控制器及虚拟交换机是一个值得研究的问题。在扩展粒度上,到底是扩展整个hypervisor的实例还是只是其中的功能模块,也是值得深入的研究点。此外,考虑复杂的、特殊的、特定的物理网络信息,也是实现更高效的网络虚拟化的一个重要的研究问题。
SDN网络虚拟化QoS保证
在现实应用场景中,很多网络应用具有极端的应用需求,例如股票交易等电子商务应用需要极度高等级的网络安全服务保证等。然而,现在的云计算平台所提供的QoS保证还无法满足这些极端化的应用需求。究其原因是因为在这些场景中,云计算平台依然依赖大量的极端化硬件设备以满足这些计算密集型、存储密集型、极度低延迟型和极度依赖安全保证型的业务。SDN 网络虚拟化是实现高水平的QoS 保证的网络服务的重要支撑技术。 ■
参考文献
[1] Blenk A, Basta A, Reisslein M, et al. Survey on Network Virtualization Hypervisors for Software Defined Networking[J]. IEEE Communications Surveys & Tutorials, 2015, 18(1):655-685.
[2] Jain R, Paul S. Network virtualization and software defined networking for cloud computing: a survey[J]. IEEE Communications Magazine, 2013, 51(11):24-31.
[3] Bari M F, Boutaba R, Esteves R, et al. Data Center Network Virtualization: A Survey[J]. IEEE Communications Surveys & Tutorials, 2013, 15(2):909-928.
[4] Al-Shabibi A, De Leenheer M, Gerola M, et al. OpenVirteX: make your virtual SDNs programmable[C]//The Workshop on Hot Topics in Software Defined Networking. ACM, 2014:25-30.
[5] Drutskoy D, Keller E, Rexford J. Scalable Network Virtualization in Software-Defined Networks[J]. IEEE Internet Computing, 2013, 17(2):20-27.
[6] Corin R D, Gerola M, Riggio R, et al. VeRTIGO: Network Virtualization and Beyond[C]// European Workshop on Software Defined NETWORKING. 2012:24-29.
[7] Min S, Kim S, Lee J, et al. Implementation of an OpenFlow network virtualization for multi-controller environment[C]// International Conference on Advanced Communication Technology. IEEE, 2012:589-592.
[8] Koponen T, Amidon K, Balland P, et al. Network virtualization in multi-tenant datacenters[C]// Usenix Conference on Networked Systems Design and Implementation. USENIX Association, 2014:203-216.
[9] Fischer A, Botero J F, Beck M T, et al. Virtual Network Embedding: A Survey[J]. IEEE Communications Surveys & Tutorials, 2013, 15(4):1888-1906.
其他作者:陈秀忠
所有评论仅代表网友意见